Parallel Execution Aware Data Structures
نویسنده
چکیده
e observation that parallel processing inevitably runs into issues managing data movement is hardly new. e old joke “a supercomputer is an expensive device that transforms a compute-bound problem into an I/Obound problem” now has a new variant: “a manycore processor is a device that transforms a compute-bound problem into a memory bound problem.” As we enter the multicore and manycore era, data structures which make good use of memory resources become critically important. Fundamentally, parallel processing exerts more pressure on the memory subsystem than serial processing. Datasets in parallel programs tend to be large, multiple cores on each processor must contend for access to one offchip memory, and the memory subsystem is generally responsible for providing a coherent view of the system’s state. All these factors lead to memory subsystem utilization o en becoming the limiting factor in parallel computation, motivating the need for careful construction of data structures to support parallel execution. It is also important to note that instruction execution and data representation are duals of each other. Choosing a data representation o en leads to a particular algorithm or approach, and choosing a particular algorithm or parallel strategy o enhas implications on the kinds of data structures which are used. Since most pa erns for parallel processing focus on nding parallel instruction streams, we will speak in this pa ern as if the parallel execution strategy has been chosen, and the task is to nd a data structure which supports this execution strategy. In reality, the decision o en ows in the reverse direction: a particular data representation can suggest a parallel execution strategy. However, for clarity we assume that a parallel execution strategy has been xed, and our task is to nd a data structure that will allow that execution strategy to be utilized effectively. is task is a crucial one: failure to consider the implications of parallel processing on data structures usually leads to poor performance, and is a prime contributor to the failure of some parallel computations to scale productively to parallel processors, which ultimately reduces the usefulness of parallel processing. erefore, in addition to nding execution parallelism in our computations, we must also consider data structures which support this parallelism.
منابع مشابه
PeNeLoop: Parallelizing Federated SPARQL Queries in Presence of Replicated Fragments
Replicating data fragments in Linked Data improves data availability and performances of federated query engines. Existing replication aware federated query engines mainly focus on source selection and query decomposition in order to prune redundant sources and reduce intermediate results thanks to data locality. In this paper, we extend replication-aware federated query engines with a replicat...
متن کاملParallel Execution Optimization of GPU-aware Components in Embedded Systems
Many embedded systems process huge amount of data that comes from the interaction with the environment. The Graphics Processing Unit (GPU) is a modern embedded solution that tackles the efficiency challenge when processing a lot of data. GPU may improve even more the system performance by allowing multiple activities to be executed in a parallel manner. In a complex component-based application,...
متن کاملVisualizing Distributed Data Structures
A new programming style for large-scale parallel programs centered around distributed data structures has emerged. The current parallel program visualization tools were intended for the old style and do not deal with distributed data structures. We show, with several examples of visualizations and animations developed for large scale pC++ programs, that visualizing and animating distributed dat...
متن کاملResource management strategies with energy profiles for stencil computing
The performance of high-end supercomputers will reach the exascale through the advent of core counts in the billions. However, in the upcoming exascale computing era it is important not only to focus on the performance, but also on scalability of fine-grained parallel applications, data locality and energy aware scheduling within the parallel code. In fact, parallel applications need to change ...
متن کاملGreen Energy-aware task scheduling using the DVFS technique in Cloud Computing
Nowdays, energy consumption as a critical issue in distributed computing systems with high performance has become so green computing tries to energy consumption, carbon footprint and CO2 emissions in high performance computing systems (HPCs) such as clusters, Grid and Cloud that a large number of parallel. Reducing energy consumption for high end computing can bring various benefits such as red...
متن کامل